背景 第一次聽說 SPI 是閱讀《軟件框架設計的藝術》,以后陸續在 Log4Net 和 Quartz.Net中發現了以這種形式組織代碼的方式,本位給出為什么要區分 SPI 和 API 的一個思考過程 ...
背景 第一次聽說 SPI 是閱讀《軟件框架設計的藝術》,以后陸續在 Log4Net 和 Quartz.Net中發現了以這種形式組織代碼的方式,本位給出為什么要區分 SPI 和 API 的一個思考過程 ...
備注 不要重復自己,也不要重復別人,一旦養成了“拷貝和粘貼”的習慣,寫程序的時候非常容易導致重復,好在一直暗示自己要稍后進行重構,本文給出一個重構的示例。 需求 需求:按照年、月和日顯示銷售數據 ...
背景知識 控制反轉 反轉傳統的控制邏輯,常見的傳統控制邏輯有: 一、客戶類型負責創建依賴。反轉后的結構是:由IOC負責創建。 二、客戶類型調用框架。反轉后的結果是:框架調用客戶類型。 依賴注 ...
背景 今天上午和以為朋友聊了一個設計問題:如何消除倉庫相關的單據的Repository中的重復邏輯?如:入庫單Repository和出庫單Repository之間的重復。可以有很多方式消除重復,在不 ...
依賴注入的定義 控制反轉(Inversion of Control,英文縮寫為IoC)是一個重要的面向對象編程的法則來削減計算機程序的耦合問題。 控制反轉還有一個名字叫做依賴注入(Dependenc ...
接口的種類(API和SPI) 從接口的被調用方式和被實現方式看,接口有API和SPI之分,見下圖: API和SPI在物理組織方式上的建議(可根據情況選擇其一) 位於獨立的 ...
背景 接觸了一些非常優秀的編程人才,發現他們有一個共同的特點:“重視命名”,記得一位大師也曾說過:“命名和緩存是他最頭痛的兩個問題”,我不是一個注重細節的人,最起碼從骨子里不是,因此我吃了不少苦頭, ...
背景 我們執着於面《向對象編程》,而多數情況我們都在使用《面向類型編程》,今天簡單快速的回顧一下對象的之間的關系。 先談談類型之間的關系 類型之間的依賴,這里進一步划分為兩類: 顯式 ...